package com.newtouch.cq.lang.util;

import cn.hutool.log.Log;
import com.newtouch.cq.lang.exception.IMccExceptionInfo;

/**
 * 日志工具类
 *
 * @author Alex
 */
public class LogUtil {

    /**
     * 不含自定义描述的错误日志打印
     *
     * @param log  日志对象
     * @param code 错误编码
     * @param msg  错误信息
     */
    public static void error(Log log, int code, String msg) {
        log.error("错误编码：{}，错误信息：{}", code, msg);
    }

    /**
     * 不含自定义描述的错误日志打印
     *
     * @param log  日志对象
     * @param info 异常枚举
     * @param o  自定义描述
     */
    public static void error(Log log, IMccExceptionInfo info, String o) {
        log.error("错误编码：{}，错误信息：{},{}", info.getCode(), info.getMessage(), o);
    }

    /**
     * 含有自定义描述的错误日志打印
     *
     * @param log  日志对象
     * @param code 错误编码
     * @param msg  错误信息
     * @param o    自定义描述
     */
    public static void error(Log log, int code, String msg, String o) {
        log.error("错误编码：{}，错误信息：{},{}", code, msg, o);
    }

    /**
     * 不含自定义描述的错误日志打印
     *
     * @param log  日志对象
     * @param exceptionInfo 异常类
     */
    public static void error(Log log, IMccExceptionInfo exceptionInfo) {
        log.error("错误编码：{}，错误信息：{},{}", exceptionInfo.getCode(), exceptionInfo.getMessage());
    }

    /**
     * 日不含自定义描述的警告日志打印
     *
     * @param log  日志对象
     * @param code 错误编码
     * @param msg  错误信息
     */
    public static void warn(Log log, String code, String msg) {
        log.warn("错误编码：{}，错误信息：{}", code, msg);
    }

    /**
     * 含有自定义描述的警告日志打印
     *
     * @param log  日志对象
     * @param code 错误编码
     * @param msg  错误信息
     * @param o    自定义描述
     */
    public static void warn(Log log, String code, String msg, String o) {
        log.warn("错误编码：{}，错误信息：{},{}", code, msg, o);
    }
}
